docs: private Object runWithPossibleProxySwap(Method method, Object target, Object[] args)
  			throws IllegalAccessException, InvocationTargetException {
  		Object result;
  		// swap with proxies to these too.
  		if (method.getName().equals("createStatement")){
  			result = memorize((Statement)method.invoke(target, args), this.connectionHandle.get());
  		}
  		else if (method.getName().equals("prepareStatement")){
  			result = memorize((PreparedStatement)method.invoke(target, args), this.connectionHandle.get());
  		}
  		else if (method.getName().equals("prepareCall")){
  			result = memorize((CallableStatement)method.invoke(target, args), this.connectionHandle.get());
  		}
  		else result = method.invoke(target, args);
  		return result;
  	}