Source:
public static DbSupport createDbSupport(Connection connection, boolean printInfo) { String databaseProductName = getDatabaseProductName(connection); if (printInfo) { LOG.info("Database: " + getJdbcUrl(connection) + " (" + databaseProductName + ")"); } if (databaseProductName.startsWith("Apache Derby")) { return new DerbyDbSupport(connection); } if (databaseProductName.startsWith("SQLite")) { return new SQLiteDbSupport(connection); } if (databaseProductName.startsWith("H2")) { return new H2DbSupport(connection); } if (databaseProductName.contains("HSQL Database Engine")) { return new HsqlDbSupport(connection); } if (databaseProductName.startsWith("Microsoft SQL Server")) { return new SQLServerDbSupport(connection); } if (databaseProductName.contains("MySQL")) { return new MySQLDbSupport(connection); } if (databaseProductName.startsWith("Oracle")) { return new OracleDbSupport(connection); } if (databaseProductName.startsWith("PostgreSQL 8")) { RedshiftDbSupport redshift; if ("RedshiftJDBC".equals(getDriverName(connection))) { redshift = new RedshfitDbSupportViaRedshiftDriver(connection); } else { redshift = new RedshfitDbSupportViaPostgreSQLDriver(connection); } if (redshift.detect()) { return redshift; } } if (databaseProductName.startsWith("PostgreSQL")) { return new PostgreSQLDbSupport(connection); } if (databaseProductName.startsWith("DB2")) { if (getDatabaseProductVersion(connection).startsWith("DSN")){ return new DB2zosDbSupport(connection); } else { return new DB2DbSupport(connection); } } if (databaseProductName.startsWith("Vertica")) { return new VerticaDbSupport(connection); } if (databaseProductName.contains("solidDB")) { return new SolidDbSupport(connection); } if (databaseProductName.startsWith("Phoenix")) { return new PhoenixDbSupport(connection); } if (databaseProductName.startsWith("Adaptive Server Enterprise")) { return new SybaseASEDbSupport(connection); } if (databaseProductName.startsWith("HDB")) { return new SapHanaDbSupport(connection); } throw new FlywayException("Unsupported Database: " + databaseProductName); }

Target:
public static DbSupport createDbSupport(Connection connection, boolean printInfo) { String databaseProductName = getDatabaseProductName(connection); if (printInfo) { LOG.info("Database: " + getJdbcUrl(connection) + " (" + databaseProductName + ")"); } if (databaseProductName.startsWith("Apache Derby")) { return new DerbyDbSupport(connection); } if (databaseProductName.startsWith("SQLite")) { return new SQLiteDbSupport(connection); } if (databaseProductName.startsWith("H2")) { return new H2DbSupport(connection); } if (databaseProductName.contains("HSQL Database Engine")) { return new HsqlDbSupport(connection); } if (databaseProductName.startsWith("Microsoft SQL Server")) { return new SQLServerDbSupport(connection); } if (databaseProductName.contains("MySQL")) { return new MySQLDbSupport(connection); } if (databaseProductName.startsWith("Oracle")) { return new OracleDbSupport(connection); } if (databaseProductName.startsWith("PostgreSQL 8")) { RedshiftDbSupport redshift; if ("RedshiftJDBC".equals(getDriverName(connection))) { redshift = new RedshfitDbSupportViaRedshiftDriver(connection); } else { redshift = new RedshfitDbSupportViaPostgreSQLDriver(connection); } if (redshift.detect()) { return redshift; } } if (databaseProductName.startsWith("PostgreSQL")) { return new PostgreSQLDbSupport(connection); } if (databaseProductName.startsWith("DB2")) { if (getDatabaseProductVersion(connection).startsWith("DSN")){ return new DB2zosDbSupport(connection); } else { return new DB2DbSupport(connection); } } if (databaseProductName.startsWith("Vertica")) { return new VerticaDbSupport(connection); } if (databaseProductName.contains("solidDB")) { return new SolidDbSupport(connection); } if (databaseProductName.startsWith("Phoenix")) { return new PhoenixDbSupport(connection); } if (databaseProductName.startsWith("ASE") || databaseProductName.startsWith("Adaptive")) { return new SybaseASEDbSupport(connection); } if (databaseProductName.startsWith("HDB")) { return new SapHanaDbSupport(connection); } throw new FlywayException("Unsupported Database: " + databaseProductName); }