code: @Override
      public SqlStatement[] generateStatements(Database database) {
  
          List<SqlStatement> returnStatements = new ArrayList<>();
  
          String sql = StringUtil.trimToNull(getSql());
          if (sql == null) {
              return new SqlStatement[0];
          }
  
          String processedSQL = normalizeLineEndings(sql);
          for (String statement : StringUtil.processMutliLineSQL(processedSQL, isStripComments(), isSplitStatements(), getEndDelimiter())) {
              if (database instanceof MSSQLDatabase) {
                   statement = statement.replaceAll("\\n", "\r\n");
               }
  
              String escapedStatement = statement;
              try {
                  if (database.getConnection() != null) {
                      escapedStatement = database.getConnection().nativeSQL(statement);
                  }
              } catch (DatabaseException e) {
                  escapedStatement = statement;
              }
  
              returnStatements.add(new RawSqlStatement(escapedStatement, getEndDelimiter()));
          }
  
          return returnStatements.toArray(new SqlStatement[returnStatements.size()]);
      }
docs: Generates one or more SqlStatements depending on how the SQL should be parsed.
  If split statements is set to true then the SQL is split and each command is made into a separate SqlStatement.
  <p></p>
  If stripping comments is true then any comments are removed before the splitting is executed.
  The set SQL is passed through the {@link java.sql.Connection#nativeSQL} method if a connection is available.