@Override
  public Sql[] generateSql(
      AddDefaultValueStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {

    Object defaultValue = statement.getDefaultValue();
    StringBuffer sql = new StringBuffer("ALTER TABLE ");
    sql.append(
        database.escapeTableName(
            statement.getCatalogName(), statement.getSchemaName(), statement.getTableName()));
    sql.append(" MODIFY (");
    sql.append(
        database.escapeColumnName(
            statement.getCatalogName(),
            statement.getSchemaName(),
            statement.getTableName(),
            statement.getColumnName()));
    sql.append(" ");
    sql.append(
        DataTypeFactory.getInstance().fromDescription(statement.getColumnDataType(), database));
    sql.append(" DEFAULT ");
    sql.append(
        DataTypeFactory.getInstance()
            .fromObject(defaultValue, database)
            .objectToSql(defaultValue, database));
    sql.append(")");
    UnparsedSql unparsedSql = new UnparsedSql(sql.toString(), getAffectedColumn(statement));
    return new Sql[] {unparsedSql};
  }
 @Override
 public ValidationErrors validate(
     AddDefaultValueStatement addDefaultValueStatement,
     Database database,
     SqlGeneratorChain sqlGeneratorChain) {
   ValidationErrors validationErrors =
       super.validate(addDefaultValueStatement, database, sqlGeneratorChain);
   if (addDefaultValueStatement.getColumnDataType() == null) {
     validationErrors.checkRequiredField(
         "columnDataType", addDefaultValueStatement.getColumnDataType());
   }
   return validationErrors;
 }