code: public Map<String, ResultColumn> next() throws DatabaseEngineException {
          try {
  
              if (closed) {
                  return null;
              }
  
              if (!resultSet.next()) {
                  close();
  
                  return null;
              }
  
              Map<String, ResultColumn> temp = new LinkedHashMap<>(columnNames.size());
              int i = 1;
              for (String cname : columnNames) {
                  temp.put(cname, createResultColumn(cname, resultSet.getObject(i)));
                  i++;
              }
  
              return temp;
          } catch (final Exception e) {
              close();
              throw new DatabaseEngineException("Could not fetch data.", e);
          }
      }
docs: Retrieves the next row in the result set.
  <p>
  This method also closes the result set upon the last call on the result set.
  </p>
  <p>
  If the statement in place is not a {@link PreparedStatement} it also closes the statement.
  </p>
  <p>
  If an exception is thrown the calling thread is responsible for repeating the action in place.
  </p>
  
  @return The result row.
  @throws DatabaseEngineException If a database access error occurs.