There is also log for variables org.jbpm.process.audit.VariableInstanceLog.
JPAProcessInstanceDbLog log = new JPAProcessInstanceDbLog(getEnvironment());
List<VariableInstanceLog> results = log.findVariableInstances(processInstanceId, "OutcomeResult");
But it keeps only String values.
For our usage I would prefare storing data as complex object, so we can work with them as when process is running and they are taken from ProcessInstanceInfo table.
If you have any idea or solution, share it.