code: func (e *CombinedEtcdClient) Get(version *EtcdVersion, key string) (string, error) {
  	if version.Major == 2 {
  		v2client, err := e.clientV2()
  		if err != nil {
  			return "", err
  		}
  		resp, err := v2client.Get(context.Background(), key, nil)
  		if err != nil {
  			return "", err
  		}
  		return resp.Node.Value, nil
  	}
  	v3client, err := e.clientV3()
  	if err != nil {
  		return "", err
  	}
  	defer v3client.Close()
  	resp, err := v3client.KV.Get(context.Background(), key)
  	if err != nil {
  		return "", err
  	}
  	kvs := resp.Kvs
  	if len(kvs) != 1 {
  		return "", fmt.Errorf("expected exactly one value for key %s but got %d", key, len(kvs))
  	}
  
  	return string(kvs[0].Value), nil
  }
docs: // Get reads a single value for a given key.