code: public byte[] getData(String path, boolean watch, Stat stat)
              throws KeeperException, InterruptedException {
          verbotenThreadCheck();
          return getData(path, watch ? watchManager.defaultWatcher : null, stat);
      }
docs: Return the data and the stat of the node of the given path.
  <p>
  If the watch is true and the call is successful (no exception is thrown),
  a watch will be left on the node with the given path. The watch will be
  triggered by a successful operation that sets data on the node, or
  deletes the node.
  <p>
  A KeeperException with error code KeeperException.NoNode will be thrown
  if no node with the given path exists.
  
  @param path
  the given path
  @param watch
  whether need to watch this node
  @param stat
  the stat of the node
  @return the data of the node
  @throws KeeperException
  If the server signals an error with a non-zero error code
  @throws InterruptedException
  If the server transaction is interrupted.