Preferred way of loading a specific entity revision In drupal 7 you can do this to load an entity revision using

entity_load($entity_type, $ids = FALSE, $conditions = array(), $reset = FALSE)

like this:

$old_revision = entity_load('node', array(), array('vid' =&gt; 123));


However now $conditions is being deprecated.
Pretty much wherever you go you see people saying that you should use EntityFieldQuery instead of conditions, however that doesn't help in this case.
You can use age() to query revisions using EntityFieldQuery however it doesn't give you fully loaded node results so you then still have to load the entity and how do you load that revision of that entity without the conditions.
Currently the preferred way is to get the storage instance (EntityStorageInterface) for the entity type from the EntityTypeManager and then use its loadRevision() function. For example, you could do this for a node:

$node_revision = \Drupal::entityTypeManager()
  -&gt;getStorage('node')
  -&gt;loadRevision($node_revision_id);


Previously to this you would get the storage instance from the EntityManager like this:

$node_revision = \Drupal::entityManager()
  -&gt;getStorage('node')
  -&gt;loadRevision($node_revision_id);


This still currently works however it has been deprecated in favour of the first method. The change record relating to this is at https://www.drupal.org/node/2549139

The old way, which still currently works in Drupal 8 but is also deprecated, is the function entity_revision_load(), which is also available in drupal 7 via entity_revision_load() in the Entity API module.

This function replaces the use of conditions to load old entity revisions.
You can see the history of this change in the Drupal core issue about Remove deprecated $conditions support from entity controller.

The way you would use this function as per the original question is:

$old_revision = entity_revision_load('node', 123);