code: @Override
      public Warnings warn(Database database) {
          Warnings warnings = new Warnings();
          if (generateStatementsVolatile(database)) {
              return warnings;
          }
  
          SqlStatement[] statements = generateStatements(database);
          if (statements == null) {
              return warnings;
          }
          for (SqlStatement statement : statements) {
              if (SqlGeneratorFactory.getInstance().supports(statement, database)) {
                  warnings.addAll(SqlGeneratorFactory.getInstance().warn(statement, database));
              } else if (statement.skipOnUnsupported()) {
                  warnings.addWarning(
                      statement.getClass().getName() + " is not supported on " + database.getShortName() +
                          ", but " + Scope.getCurrentScope().getSingleton(ChangeFactory.class).getChangeMetaData(this).getName() +
                          " will still execute");
              }
          }
  
          return warnings;
      }
docs: Implementation delegates logic to the
  {@link liquibase.sqlgenerator.SqlGenerator#warn(liquibase.statement.SqlStatement, liquibase.database.Database,
  liquibase.sqlgenerator.SqlGeneratorChain)} method on the {@link SqlStatement} objects returned by
  {@link #generateStatements }.
  If a generated statement is not supported for the given database, no warning will be added since that is a
  validation error. If no or null SqlStatements are returned by generateStatements then this method returns no
  warnings.