code: public boolean getMoreResults() throws SQLException {
          startTimer();
          try {
              if (queryResult != null) {
                  queryResult.close();
              }
  
              queryResult = protocol.getMoreResults();
              if(queryResult == null) {
                 this.resultSet=null;
                 setUpdateCount(-1);
                 return false;
              }
              warningsCleared = false;
              if (queryResult.getResultSetType() == ResultSetType.SELECT) {
                  setResultSet(new DrizzleResultSet(queryResult, this, getProtocol()));
                  return true;
              }
              setUpdateCount((int)((ModifyQueryResult) queryResult).getUpdateCount());
              return false;
          } catch (QueryException e) {
              throw SQLExceptionMapper.get(e);
          } finally {
              stopTimer();
          }
      }
docs: Moves to this <code>Statement</code> object's next result, returns <code>true</code> if it is a
  <code>ResultSet</code> object, and implicitly closes any current <code>ResultSet</code> object(s) obtained with
  the method <code>getResultSet</code>.
  <p/>
  <P>There are no more results when the following is true: <PRE> // stmt is a Statement object
  ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1)) </PRE>
  
  @return <code>true</code> if the next result is a <code>ResultSet</code> object; <code>false</code> if it is an
  update count or there are no more results
  @throws java.sql.SQLException if a database access error occurs or this method is called on a closed
  <code>Statement</code>
  @see #execute