@Override
        public void forEachRemaining(Consumer<? super T> action) {
            if (state == State.NOT_DETERMINED && !hasNext()) {
                return;
            }

            if (state == State.NO_NEXT) {
                return;
            }

            try {
                do {
                    try {
                        action.accept(mapper.apply(resultSet));
                    } catch (final SQLException ex) {
                        throw new SpeedmentException(ex);
                    }
                } while (resultSet.next());
            } catch (final SQLException ex) {
                // Do nothing.
            } finally {
                state = State.NO_NEXT;
            }
        }
{@inheritDoc}
<p>
After the termination of this method, the state will be either
{@link State#NEXT} or {@link State#NO_NEXT}. Calling this method
multiple times in a row has no effect. The state will remain the
same.

@return  if there are more rows
runtime-parent/runtime-core/src/main/java/com/speedment/runtime/core/internal/stream/InternalStreamUtil.java