@Override
  public String generateSqlType(Dialect dialect) {
    switch (dialect.getId()) {
      case PostgreSql.ID, H2.ID:
        return "BOOLEAN";
      case Oracle.ID:
        return "NUMBER(1)";
      case MsSql.ID:
        return "BIT";
      default:
        throw new UnsupportedOperationException(String.format("Unknown dialect '%s'", dialect.getId()));
    }
  }
@Test
  public void generate_sql_type() {
    BooleanColumnDef def = new BooleanColumnDef.Builder()
      .setColumnName("enabled")
      .setIsNullable(true)
      .build();

    assertThat(def.generateSqlType(new H2())).isEqualTo("BOOLEAN");
    assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("BOOLEAN");
    assertThat(def.generateSqlType(new MsSql())).isEqualTo("BIT");
    assertThat(def.generateSqlType(new Oracle())).isEqualTo("NUMBER(1)");
  }