code: public long nextLongValue() throws PersistException {
          try {
              synchronized (mStoredSequence) {
                  return nextUnadjustedValue() + Long.MIN_VALUE + mStoredSequence.getInitialValue();
              }
          } catch (FetchException e) {
              throw e.toPersistException();
          }
      }
docs: Returns the next value from the sequence, which may wrap negative if all
  positive values are exhausted. When sequence wraps back to initial
  value, the sequence is fully exhausted, and an exception is thrown to
  indicate this.
  
  <p>Note: this method throws PersistException even for fetch failures
  since this method is called by insert operations. Insert operations can
  only throw a PersistException.
  
  @throws PersistException for fetch/persist failure or if sequence is exhausted.