@VisibleForTesting
  @CheckForNull
  CharsetHandler getHandler(Dialect dialect) {
    switch (dialect.getId()) {
      case H2.ID:
        // nothing to check
        return null;
      case Oracle.ID:
        return new OracleCharsetHandler(sqlExecutor);
      case PostgreSql.ID:
        return new PostgresCharsetHandler(sqlExecutor, new PostgresMetadataReader(sqlExecutor));
      case MsSql.ID:
        return new MssqlCharsetHandler(sqlExecutor, new MssqlMetadataReader(sqlExecutor));
      default:
        throw new IllegalArgumentException("Database not supported: " + dialect.getId());
    }
  }
@Test
  public void getHandler_returns_PostgresCharsetHandler_if_postgres() {
    assertThat(underTest.getHandler(new PostgreSql())).isInstanceOf(PostgresCharsetHandler.class);
  }