code: Header readHeader(@NonNull ArrayView input) throws SerializationException {
          byte version = input.get(VERSION_POSITION);
          int keyLength = BitConverter.readInt(input, KEY_POSITION);
          int valueLength = BitConverter.readInt(input, VALUE_POSITION);
          long entryVersion = BitConverter.readLong(input, ENTRY_VERSION_POSITION);
          validateHeader(keyLength, valueLength);
          return new Header(version, keyLength, valueLength, entryVersion);
      }
docs: Reads the Entry's Header from the given {@link ArrayView}.
  
  @param input The {@link ArrayView} to read from.
  @return The Entry Header.
  @throws SerializationException If an invalid header was detected.