>...a different database to include substitute data and pass this back to be used instead
The thing that trips me up about this is how can you ensure that the substitute data is actually useful. Is the substitute data a copy of the primary data? I guess it all depends on the use case...