# ICustomStorageInterface&lt;TState, TDelta&gt;.ReadStateFromStorage

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.customstorage.icustomstorageinterface-2/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.customstorage.icustomstorageinterface-2/methods/)

```csharp
public abstract Task<KeyValuePair<int, TState>> ICustomStorageInterface<TState, ReadStateFromStorage()
```

Reads the current state and version from storage (note that the state object may be mutated by the provider, so it must not be shared).

### Returns

the version number and a state object.
