code: public List<GroovyRowResult> rows(GString gstring, Closure metaClosure)
              throws SQLException {
          List<Object> params = getParameters(gstring);
          String sql = asSql(gstring, params);
          return rows(sql, params, 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.
  The query may contain GString expressions.
  <p>
  Example usage:
  <pre>
  def location = 25
  def printNumCols = { meta -> println "Found $meta.columnCount columns" }
  def ans = sql.rows("select * from PERSON where location_id < $location", printNumCols)
  println "Found ${ans.size()} rows"
  </pre>
  <p>
  Resource handling is performed automatically where appropriate.
  
  @param gstring     a GString containing the SQL query with embedded params
  @param metaClosure called with meta data of the ResultSet
  @return a list of GroovyRowResult objects
  @throws SQLException if a database access error occurs
  @see #expand(Object)