@Override
  public Sql[] generateSql(
      GetViewDefinitionStatement statement,
      Database database,
      SqlGeneratorChain sqlGeneratorChain) {
    try {
      String sql =
          "select isnull(object_definition(OBJECT_ID(object_id)), view_definition) from sys.objects, sys.schemas, INFORMATION_SCHEMA.VIEWS where objects.type='v' and upper(objects.name)='"
              + statement.getViewName().toUpperCase()
              + "'";
      sql +=
          " and objects.schema_id=schemas.schema_id and schemas.name='"
              + database.convertRequestedSchemaToSchema(statement.getSchemaName())
              + "'";
      sql += " AND upper(table_name)='" + statement.getViewName().toUpperCase() + "'";
      //        if (StringUtils.trimToNull(schemaName) != null) {
      sql +=
          " and table_schema='"
              + database.convertRequestedSchemaToSchema(statement.getSchemaName())
              + "'";
      sql += " and table_catalog='" + database.getDefaultCatalogName() + "'";

      //        log.info("GetViewDefinitionSQL: "+sql);

      return new Sql[] {new UnparsedSql(sql)};
    } catch (DatabaseException e) {
      throw new UnexpectedLiquibaseException(e);
    }
  }