code: func (d *ResourceDiff) getChange(key string) (getResult, getResult, bool) {
  	old := d.get(strings.Split(key, "."), "state")
  	var new getResult
  	for p := range d.updatedKeys {
  		if childAddrOf(key, p) {
  			new = d.getExact(strings.Split(key, "."), "newDiff")
  			return old, new, true
  		}
  	}
  	new = d.get(strings.Split(key, "."), "newDiff")
  	return old, new, false
  }
docs: // getChange gets values from two different levels, designed for use in
  // diffChange, HasChange, and GetChange.
  //
  // This implementation differs from ResourceData's in the way that we first get
  // results from the exact levels for the new diff, then from state and diff as
  // per normal.