Suppose I have a non-stationary limited data. Do I have to make it stationary before making forecasts? Can I use exponential smoothing, moving averages or even Holt Winters methods without making my data stationary? I've read that time series should be stationary to use such methods? Is that correct?
I don't know what "non-stationary limited data" means. So I will assume you mean "non-stationary data".
Exponential smoothing methods including Holt-Winters methods are appropriate for (some kinds of) non-stationary data. In fact, they are only really appropriate if the data are non-stationary. Using an exponential smoothing method on stationary data is not wrong but is sub-optimal.
If by "moving averages", you mean forecasting using a moving average of recent observations, then that is also ok for some kinds of non-stationary data. But it obviously won't work well with trends or seasonality.
If by "moving averages", you mean a moving average model (i.e. a model consisting of a linear combination of past error terms), then you do need a stationary time series.
Stationarity refers to uniformity in the properties of the data. If you know that the data is non-stationary, it means that the useful properties of the data cannot be assumed to be the same for the entire series. Under such an assumption, why do you want to apply the same filter or model to the entire series ?
My suggestion is to look for properties that stay the same for a stretch of data and then changes but again stays the same for another stretch. then look for a criteria to transition between the two different stretches of data.
Alternatively, search for locally stationary series.
Also if smoothing is what you want, then I would suggest some non-parametric smoothing methods like kernel smoothing.
Edit after first comment : if you know the precise form of non-stationarity, or can approximate a functional form to the series, then use the properties of the form for your prediction.