code: public List<GroovyRowResult> rows(String sql, @ClosureParams(value=SimpleType.class, options="java.sql.ResultSetMetaData") Closure metaClosure)
              throws SQLException {
          return rows(sql, 0, 0, metaClosure);
      }
docs: Performs the given SQL query and return the rows of the result set.
  In addition, the <code>metaClosure</code> will be called once passing in the
  <code>ResultSetMetaData</code> as argument.
  <p>
  Example usage:
  <pre>
  def printNumCols = { meta {@code ->} println "Found $meta.columnCount columns" }
  def ans = sql.rows("select * from PERSON", printNumCols)
  println "Found ${ans.size()} rows"
  </pre>
  <p>
  Resource handling is performed automatically where appropriate.
  
  @param sql         the SQL statement
  @param metaClosure called with meta data of the ResultSet
  @return a list of GroovyRowResult objects
  @throws SQLException if a database access error occurs