Returns a new, cached Handle instance if it hasn't already been provided or if the inputs have changed since the previous invocation of this method.