code: protected void connect() throws Exception {
          String username = this.properties.getUsername();
          String password = this.properties.getPassword();
  
          if (this.properties.isEncryptedPassword() || this.properties.isEncryptedUsername()) {
              String privateKey = getPrivateKey();
              if (this.properties.isEncryptedUsername()) {
                  final String decryptedUsername = AESHelper.decrypt(this.properties.getProperty(ENCRYPTED_USERNAME), privateKey);
                  if (StringUtils.isEmpty(decryptedUsername)) {
                      throw new DatabaseEngineException("The encrypted username could not be decrypted.");
                  }
                  username = decryptedUsername;
  
              }
  
              if (this.properties.isEncryptedPassword()) {
                  final String decryptedPassword = AESHelper.decrypt(this.properties.getProperty(ENCRYPTED_PASSWORD), privateKey);
                  if (StringUtils.isEmpty(decryptedPassword)) {
                      throw new DatabaseEngineException("The encrypted password could not be decrypted.");
                  }
                  password = decryptedPassword;
              }
          }
  
          final String jdbc = getFinalJdbcConnection(this.properties.getJdbc());
  
          this.conn = DriverManager.getConnection(
                  jdbc,
                  username,
                  password);
  
          if (this.properties.isSchemaSet()) {
              setSchema(this.properties.getSchema());
          }
  
          this.currentSchema = Optional.ofNullable(getSchema())
              .orElseThrow(() -> new DatabaseEngineException("Could not get current schema"));
  
          setTransactionIsolation();
  
          logger.debug("Connection successful.");
      }
docs: Connects to the database.
  
  @throws Exception If connection is not possible, or failed to decrypt username/password if encryption was provided.