docs: public String readString() throws IOException {
          final int len = readInt();
  
          // check for null string
          if (len == VoltType.NULL_STRING_LENGTH) {
              return null;
          }
  
          if (len < VoltType.NULL_STRING_LENGTH) {
              throw new IOException("String length is negative " + len);
          }
          if (len > buffer.remaining()) {
              throw new IOException("String length is bigger than total buffer " + len);
          }
  
          // now assume not null
          final byte[] strbytes = new byte[len];
          readFully(strbytes);
          return new String(strbytes, Constants.UTF8ENCODING);
      }