code: @Override
      public Object getValue(int index) {
          synchronized (lock) {
              return getMValue(internalArray, index).asNative(internalArray);
          }
      }
docs: Gets value at the given index as an object. The object types are Blob,
  Array, Dictionary, Number, or String based on the underlying
  data type; or nil if the value is nil.
  
  @param index the index. This value must not exceed the bounds of the array.
  @return the Object or null.